package com.xiaolin.structure.tree.node;

import lombok.Data;

/**
 * @ClassName Node
 * @Description 树节点
 *                  基本组成：
 *                      1、存放的数据
 *                      2、左孩子
 *                      3、右孩子
 * @Detail detail
 * @Author MyPC
 * @Date 2020/11/17
 * @Version 1.0
 */
@Data
public class Node<E> {
    private E e;
    private int no;
    // 左节点
    private Node left;
    // 又节点
    private Node right;

    public Node(E e,int no){
        this.e=e;
        this.no=no;
    }

    /**
     * 前序遍历
     */
    public void preTraverse(){
        System.out.println(this.e);
        if (this.left != null) {
            this.left.preTraverse();
        }

        if(this.right !=null){
            this.right.preTraverse();
        }
    }

    /**
     * 中序遍历
     */
    public void midTraverse(){
        if(this.left!=null){
            this.left.midTraverse();
        }
        System.out.println(this.e);
        if(this.right!=null){
            this.right.midTraverse();
        }
    }

    /**
     * 后序遍历
     */
    public void afterTraverse(){
        if(this.left!=null){
            this.left.afterTraverse();
        }
        if(this.right!=null){
            this.right.afterTraverse();
        }
        System.out.println(this.e);
    }
}
